{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "from torchvision import datasets, transforms\n",
    "from torch.utils.data import DataLoader\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 数据预处理与加载\n",
    "transform = transforms.Compose(\n",
    "    [\n",
    "        transforms.ToTensor(),\n",
    "        transforms.Normalize((0.5,), (0.5,)),  # 标准化到[-1,1]范围 [1,3,7](@ref)\n",
    "    ]\n",
    ")\n",
    "\n",
    "train_set = datasets.MNIST(\n",
    "    root=\"./data\", train=True, download=True, transform=transform\n",
    ")\n",
    "test_set = datasets.MNIST(\n",
    "    root=\"./data\", train=False, download=True, transform=transform\n",
    ")\n",
    "\n",
    "train_loader = DataLoader(train_set, batch_size=64, shuffle=True)\n",
    "test_loader = DataLoader(test_set, batch_size=64, shuffle=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "# 定义CNN模型\n",
    "class CNN(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(CNN, self).__init__()\n",
    "        self.conv1 = nn.Conv2d(\n",
    "            1, 32, kernel_size=3, stride=1, padding=1\n",
    "        )  # 卷积层 [1,7](@ref)\n",
    "        self.pool = nn.MaxPool2d(2, 2)  # 池化层 [7,9](@ref)\n",
    "        self.fc1 = nn.Linear(32 * 14 * 14, 10)  # 全连接层 [1](@ref)\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.pool(torch.relu(self.conv1(x)))  # 卷积→激活→池化 [1,7](@ref)\n",
    "        x = x.view(-1, 32 * 14 * 14)\n",
    "        x = self.fc1(x)\n",
    "        return x\n",
    "\n",
    "\n",
    "# 定义全连接网络（DNN）\n",
    "class DNN(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(DNN, self).__init__()\n",
    "        self.fc = nn.Sequential(\n",
    "            nn.Linear(28 * 28, 512),  # 输入层 [6](@ref)\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(512, 256),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(256, 10),  # 输出层 [6](@ref)\n",
    "        )\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = x.view(-1, 28 * 28)\n",
    "        return self.fc(x)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1: Test Accuracy = 97.25%\n",
      "Epoch 2: Test Accuracy = 97.73%\n",
      "Epoch 3: Test Accuracy = 97.84%\n",
      "Epoch 4: Test Accuracy = 98.19%\n",
      "Epoch 5: Test Accuracy = 98.12%\n",
      "Epoch 1: Test Accuracy = 94.80%\n",
      "Epoch 2: Test Accuracy = 95.87%\n",
      "Epoch 3: Test Accuracy = 96.66%\n",
      "Epoch 4: Test Accuracy = 96.92%\n",
      "Epoch 5: Test Accuracy = 97.41%\n"
     ]
    }
   ],
   "source": [
    "\n",
    "# 训练与测试函数\n",
    "def train_model(model, train_loader, test_loader, epochs=5):\n",
    "    criterion = nn.CrossEntropyLoss()\n",
    "    optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
    "    test_accuracies = []\n",
    "\n",
    "    for epoch in range(epochs):\n",
    "        model.train()\n",
    "        for images, labels in train_loader:\n",
    "            optimizer.zero_grad()\n",
    "            outputs = model(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "\n",
    "        # 测试阶段\n",
    "        model.eval()\n",
    "        correct = 0\n",
    "        with torch.no_grad():\n",
    "            for images, labels in test_loader:\n",
    "                outputs = model(images)\n",
    "                _, predicted = torch.max(outputs, 1)\n",
    "                correct += (predicted == labels).sum().item()\n",
    "        accuracy = 100 * correct / len(test_set)\n",
    "        test_accuracies.append(accuracy)\n",
    "        print(f\"Epoch {epoch+1}: Test Accuracy = {accuracy:.2f}%\")\n",
    "\n",
    "    return test_accuracies\n",
    "\n",
    "\n",
    "# 训练并记录结果\n",
    "cnn = CNN()\n",
    "dnn = DNN()\n",
    "\n",
    "cnn_acc = train_model(cnn, train_loader, test_loader)\n",
    "dnn_acc = train_model(dnn, train_loader, test_loader)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# 可视化对比\n",
    "plt.plot(cnn_acc, label=\"CNN\", marker=\"o\")\n",
    "plt.plot(dnn_acc, label=\"DNN\", marker=\"s\")\n",
    "plt.xlabel(\"Epoch\")\n",
    "plt.ylabel(\"Test Accuracy (%)\")\n",
    "plt.title(\"CNN vs DNN on MNIST Classification [1,6,9](@ref)\")\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "mytorchenv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.21"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
